#include<stdio.h>

int a[10][10]={0};
void order(int a[],int n)
{
	int i=0,kg=0,t,j;
	for(i=0;i<n-1;i++)
	{
		kg=1;
		for(j=0;j<n-1-i;j++)
		{
			if(a[j]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
				kg=0;
			}
		}
		if(kg==1) break;
	}
}
void place(int num[],int m,int n)
{
	int sign,flag,key,i=0;
	for(sign=0;sign<m;sign++)
	{
		if(sign%2==0)
		{
			for(flag=n-1;flag>=0;flag--)
			{
				a[sign][flag]=num[i++];
			}
		}
		else
		{
			for(flag=0;flag<n;flag++)
			{
				a[sign][flag]=num[i++];
			}
		}
	}
}
int main()
{
	int m,n,sign,flag;
	int num[50]={0};
	scanf("%d %d",&m,&n);
	for(sign=0;sign<m*n;sign++)
	{
		scanf("%d",&num[sign]);
	}
	order(num,n*m);
	place(num,m,n);
	for(sign=0;sign<m;sign++)
	{
		for(flag=0;flag<n;flag++)
		{
			printf("%3d",a[sign][flag]);
		}
		if(sign<m-1) printf("\n");
	}
	return 0;
}
